;; Test the new list manipulation procedures
(display "Testing length procedure:")
(newline)
(display (length '())) ; Should output 0
(newline)
(display (length '(1 2 3))) ; Should output 3
(newline)

(display "Testing append procedure:")
(newline)
(display (append)) ; Should output ()
(newline)
(display (append '(1 2))) ; Should output (1 2)
(newline)
(display (append '(1 2) '(3 4))) ; Should output (1 2 3 4)
(newline)
(display (append '(1 2) '(3 4) '(5 6))) ; Should output (1 2 3 4 5 6)
(newline)

(display "Testing reverse procedure:")
(newline)
(display (reverse '())) ; Should output ()
(newline)
(display (reverse '(1 2 3))) ; Should output (3 2 1)
(newline)

(display "Testing list-tail procedure:")
(newline)
(display (list-tail '(1 2 3 4) 0)) ; Should output (1 2 3 4)
(newline)
(display (list-tail '(1 2 3 4) 2)) ; Should output (3 4)
(newline)
(display (list-tail '(1 2 3 4) 4)) ; Should output ()
(newline)

(display "Testing list-ref procedure:")
(newline)
(display (list-ref '(1 2 3 4) 0)) ; Should output 1
(newline)
(display (list-ref '(1 2 3 4) 2)) ; Should output 3
(newline)